package la.iok.hzsvn.lewin.movie.cloud.model;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Date;

/**
 * 以客户端方式登录微信平台获取小程序token的响应
 */
public class AccessTokenRes extends WxRes {
    /**
     * 令牌
     */
    @JsonProperty("access_token")
    private String accessToken;
    /**
     * 过期时长,单位为秒
     */
    @JsonProperty("expires_in")
    private Integer expiresIn;
    /**
     * 失败时间
     */
    private Date expiresAt;

    public String getAccessToken() {
        return accessToken;
    }

    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }

    public Integer getExpiresIn() {
        return expiresIn==null?0:expiresIn;
    }

    public void setExpiresIn(Integer expiresIn) {
        this.expiresIn = expiresIn;
    }

    public Date getExpiresAt() {
        return expiresAt;
    }

    public void setExpiresAt(Date expiresAt) {
        this.expiresAt = expiresAt;
    }

    /**
     * 是否接近失效
     * @return 失效时间距离当前时间在10分钟内，则认为接近失效
     */
    public boolean nearExpire(){
        long now = System.currentTimeMillis();
        return expiresAt != null && expiresAt.getTime() - now <= 10*60*1000;
    }

    /**
     * 令牌是否已经过期
     * @return true表示已经过期，false表示未过期
     */
    public boolean expired(){
        long now = System.currentTimeMillis();
        return expiresAt != null && expiresAt.getTime() - now <= 10*1000;
    }
}
